/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package arquivos;

/**
 *
 * @author rafaelob
 */
public class Resultado implements Comparable<Resultado> {

    private String metodo;
    private int acessos;
    private int tamanhoTabela;
    private int quantidadeNumeros;
    private double averageProbe;
    private double packingFactor;
    private int Ponteiro; // 0 Não usa, 1 usa Ponteiro 2 PseudoPonteiro
    private int type;

    public Resultado() {
        Ponteiro = 0;
    }

    public int getQuantidadeNumeros() {
        return quantidadeNumeros;
    }

    public void setQuantidadeNumeros(int quantidadeNumeros) {
        this.quantidadeNumeros = quantidadeNumeros;


    }

    public double getPackingFactor() {
        return packingFactor;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public void setPackingFactor() {
        this.packingFactor = (Math.round((quantidadeNumeros/tamanhoTabela)*10.0))/10.0;
    }

     public void setPackingFactor(double packingFactor){
         this.quantidadeNumeros = (int)Math.round(packingFactor*tamanhoTabela);
         setPackingFactor();
     }

    public String usaPonteiro() {


        if (this.Ponteiro == 1) {
            return "Sim";

        } else if (this.Ponteiro == 2) {
            return "Pseudo Ponteiro";
        }
        return "Não";
    }

    public void setPonteiro(int Ponteiro) {
        this.Ponteiro = Ponteiro;
    }

    public int getAcessos() {
        return acessos;
    }

    public void setAcessos(int acessos) {
        this.acessos = acessos;
    }

    public double getAverageProbe() {
        return averageProbe;
    }

    public void setAverageProbe() {
        this.averageProbe = this.acessos/quantidadeNumeros;
    }

    public String getMetodo() {
        return metodo;
    }

    public void setMetodo(String metodo) {
        this.metodo = metodo;
    }

    public int getTamanhoTabela() {
        return tamanhoTabela;
    }

    public void setTamanhoTabela(int tamanhoTabela) {
        this.tamanhoTabela = tamanhoTabela;
    }

    public int compareTo(Resultado obj) {
        if (this.averageProbe == obj.getAverageProbe()) {
            return 0;
        } else if (this.averageProbe > obj.getAverageProbe()) {
            return 1;
        } else {
            return -1;
        }
    }
}
